<?php
/**
  * classe definissant les boxs de type menufonction
  * pour creer vos propres types de box, creer une classe avec comme nom, le nom du repertoire!!!
  * 
  * Developpee par Rodrigue LE GALL
  * sous licence GPL
  * Objectif : Construire les boxs
  */
require_once(get_path_module("environnement.box"));

class menufonction extends box
{
    var $needenv = 0;
    
    function construct(){
    	$TPLN = new TPLN;
		$L_base_env = get_env_path();
    	$bloc = $TPLN->GetFile($L_base_env.$this->getenvironnement().'/'.$this->gettemplate(),"liste");
    	$fp = fopen($L_base_env.$this->getenvironnement().'/menufonction.tmp','w');
        fwrite($fp,$bloc);
        fclose($fp);
    	/**
    	 * On recupere les infos sur tous les menus et on construit chacun.
    	 */
    	$query = "SELECT * FROM rportal_menu";
    	$result_menu=rportalrequete($query) or rportalerreur ($query,"?op=");
    	while($menu = rportalligne($result_menu)){
    		// je modifie le bloc et je parse la dedans et zou je remplace le bloc final.
    		$query = "SELECT * FROM rportal_menu_item WHERE id_menu='".$menu['id']."' ORDER BY ordre ASC";
    		$result_item=rportalrequete($query) or rportalerreur ($query,"?op=");
    		$bloc_output = "";
    		while($item = rportalligne($result_item)){
    			$TPLN->Open($L_base_env.$this->getenvironnement().'/menufonction.tmp');
    			$TPLN->Parse("texte",$item['texte']);
    			$TPLN->Parse("lien",$item['lien']);
    			if($item['target']==''){
    				$TPLN->Parse("target","_self");
    			}else{
    				$TPLN->Parse("target",$item['target']);
    			}
    			$bloc_output .= $this->getStringDroit($item['id'],$TPLN->Output());
    		}
    		$TPLN->Open($L_base_env.$this->getenvironnement().'/'.$this->gettemplate());
    		$TPLN->Parse("titre",$menu['titre']);
    		$TPLN->ParseBloc("liste",$bloc_output);
    		$fp = fopen($L_base_env.$this->getenvironnement().'/menu.'.$menu['fichier'].'.php','w');
	        fwrite($fp,$TPLN->Output());
	        fclose($fp);
    	}
        $this->prompt ="<?php if(\$session['menu']!=\"\"){\n";
        $this->prompt.="include(\"".$L_base_env."\".\$session['environnement'].\"/menu.\".\$session['menu'].\".php\");\n";
        $this->prompt.="}?>";
    }
    
    function getStringDroit($itemId=0,$string=""){
    	$query = "SELECT fonction FROM rportal_menu_droit WHERE id_item='".$itemId."'";
    	$result_droit=rportalrequete($query) or rportalerreur ($query,"?op=");
    	if(rportalnbresult($result_droit)==0){
    		return $string;	
    	}
    	$test = array();
    	$i = 0;
    	while($droit = rportalligne($result_droit)){
			$test[$i] = "array_key_exists('".$droit['fonction']."',\$sessiondroit)";
			$i++;
		}
		return "<?php if(".implode(" && ",$test)."){?>\n".$string."<?php } ?>\n";
    }
   
    
}
?>
